Timepicker'dan Alınan Bilgilerle Bildirim Göndermek
19.05.2020 - 03:37
Selamlar dostlar,
Timepicker'dan aldığım bilgilerle Alarm Manager sınıfını kullanarak uygulamaya bildirim göndermek istiyorum. Ama bir türlü başaramadım. Kodlarım aşağıda. Hatam nedir ?
MainActivity. java
package com.info.alarmtetiklemebildirim2018;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.SystemClock;
import android.support.v4.app.NotificationCompat;
import android.view.View;
import android.widget.Button;
import android.widget.TimePicker;
import java.util.Calendar;
public class MainActivity extends Activity {
private Calendar calendar;
private Button buttonBildirimGonder;
private TimePickerDialog timePickerDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
calendar.set(Calendar.HOUR_OF_DAY,hourOfDay);
calendar.set(Calendar.MINUTE,minute);
}
}, Calendar.HOUR_OF_DAY, Calendar.MINUTE, true);
buttonBildirimGonder = (Button) findViewById(R.id.buttonBildirimGonder);
buttonBildirimGonder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
zamanliliBildirimGonder();
}
});
}
private void zamanliliBildirimGonder() {
NotificationCompat.Builder builder;
NotificationManager bildirimYoneticisi =
(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
Intent ıntent = new Intent(this,MainActivity.class);
PendingIntent gidilecekIntent = PendingIntent.getActivity(this,1,ıntent,PendingIntent.FLAG_UPDATE_CURRENT);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String kanalId = "kanalId";
String kanalAd = "kanalAd";
String kanalTanım = "kanalTanım";
int kanalOnceligi = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel kanal = bildirimYoneticisi.getNotificationChannel(kanalId);
if (kanal == null) {
kanal = new NotificationChannel(kanalId, kanalAd, kanalOnceligi);
kanal.setDescription(kanalTanım);
bildirimYoneticisi.createNotificationChannel(kanal);
}
builder = new NotificationCompat.Builder(this, kanalId);
builder.setContentTitle("Başlık")
.setContentText("İçerik")
.setSmallIcon(R.drawable.resim)
.setAutoCancel(true)
.setContentIntent(gidilecekIntent);
} else {
builder = new NotificationCompat.Builder(this);
builder.setContentTitle("Başlık")
.setContentText("İçerik")
.setSmallIcon(R.drawable.resim)
.setContentIntent(gidilecekIntent)
.setAutoCancel(true)
.setPriority(Notification.PRIORITY_HIGH);
}
Intent broadcastIntent =
new Intent(MainActivity.this,BildirimYayinlayici.class);
broadcastIntent.putExtra("bildirimNesnesi",builder.build());
PendingIntent gidilecekBroadcast = PendingIntent.getBroadcast(this
,0
,broadcastIntent
,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager =
(AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),gidilecekBroadcast);
}
}
Burası da Broadcast Receiver sınıfım BildirimYakalayici.java
package com.info.alarmtetiklemebildirim2018;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class BildirimYayinlayici extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
NotificationManager bildirimYoneticisi = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification bildirim = intent.getParcelableExtra("bildirimNesnesi");
bildirimYoneticisi.notify(1, bildirim);
}
}
649
Görüntülenme
0 Beğeni
anlayamadım